#ifndef __MYIIC_H
#define __MYIIC_H
#include "main.h" 

#define IIC_SCL_IO  I2C_SCL              
#define IIC_SDA_IO  I2C_SDA            

 //IO操作函数	 
#define IIC_SCL(X)      gpio_set_level(IIC_SCL_IO, X) //SCL
#define IIC_SDA(X)      gpio_set_level(IIC_SDA_IO, X) //SDA	 
#define READ_SDA        gpio_get_level(IIC_SDA_IO)  //输入SDA   

//IO方向设置
#define SDA_IN()  gpio_set_direction(IIC_SDA_IO, GPIO_MODE_INPUT)	
#define SDA_OUT() gpio_set_direction(IIC_SDA_IO, GPIO_MODE_OUTPUT)


//IIC所有操作函数
void IIC_Init(void);                //初始化IIC的IO口				 
void IIC_Start(void);				//发送IIC开始信号
void IIC_Stop(void);	  			//发送IIC停止信号
void IIC_Send_Byte(u8 txd);			//IIC发送一个字节
u8 IIC_Read_Byte(u8 ack);//IIC读取一个字节
u8 IIC_Wait_Ack(void); 				//IIC等待ACK信号
void IIC_Ack(void);					//IIC发送ACK信号
void IIC_NAck(void);				//IIC不发送ACK信号

u8 IIC_read_addr_byte(u8 device_addr,u8 read_addr);
void IIC_read_addr_str(u8 device_addr,u8 read_addr,u8 read_amount,u8 *read_buf);
void IIC_write_addr_byte(u8 device_addr,u8 write_addr,u8 write_dat);
unsigned int IIC_read_addr_int(u8 device_addr,u8 read_addr);
void IIC_write_addr_str(u8 device_addr,u8 write_addr,u8 write_amount,u8 *write_buf);


#endif
















